package com.feifan.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.feifan.pojo.ContentDTO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author Donald
 * @create 2019-04-17 0:49
 */
public interface ContentMapper extends BaseMapper<ContentDTO> {
    /**
     * 阅读次数加1
     *
     * @param contentId
     */
    void readCountAdd(long contentId);

    /**
     * 点赞次数加减一
     * @param contentId
     * @param userId
     * @param username
     */
    void likeCountAdd(@Param("contentId") long contentId, @Param("userId") long userId,@Param("username") String username);

    /**
     * 收藏次数加一
     *
     * @param contentId
     * @param userId
     * @param username
     */
    void collectCountAdd(@Param("contentId") long contentId, @Param("userId") long userId,@Param("username") String username);

    /**
     * 发表文章
     *
     * @param contentDTO
     * @return
     */
    int sendContent(ContentDTO contentDTO);

    /**
     * 审批文章
     *
     * @param contentId  文章ID
     * @param status     审批状态
     * @param approverId 审批人ID
     * @param time       审批时间
     * @return 审批影响行数
     */
    int approveContent(@Param("contentId") long contentId, @Param("status") int status,
                       @Param("approverId") long approverId, @Param("time") Date time);

    /**
     * 查找用户自己的文章
     * @param userId
     * @return
     */
    List<ContentDTO> selectContentUser(Long userId);

    /**
     * 更新文章
     * @param contentDTO
     * @return
     */
    int updateContentById(ContentDTO contentDTO);

    /**
     * 删除文章
     * @param contentId
     * @return
     */
    int deleteContentById( long contentId );

    /**
     * 根据主题、用户名模糊搜索文章
     * @param contentDTO
     * @return
     */
    List<ContentDTO> selectByCondition(ContentDTO contentDTO);



}
